草庐IT

Javascript toFixed 不舍入

全部标签

java - float 舍入到2位小数java

我正在尝试将float舍入到2位小数。我有2个浮点值:1.98529.294998它们都需要四舍五入,所以我最终得到以下内容:1.9929.30当我使用下面的方法时:publicstaticFloatprecision(intdecimalPlace,Floatd){BigDecimalbd=newBigDecimal(Float.toString(d));bd=bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);returnbd.floatValue();}结果是:1.9929.29 最佳答案

java - 在 Java ME 中将 double 舍入到小数点后 5 位

如何在不使用DecimalFormat的情况下将double四舍五入到小数点后5位? 最佳答案 您可以四舍五入到小数点后第五位,方法是将其乘以您的数字,使其成为小数点后第一位。然后进行正常的四舍五入,再次保留小数点后第五位。假设要舍入的值是一个名为x的double:doublefactor=1e5;//=1*10^5=100000.doubleresult=Math.round(x*factor)/factor;如果要四舍五入到小数点后6位,让factor为1e6,依此类推。 关于jav

java - ASP .net C# Decimal 与 Java Double 之间的舍入不匹配

我正在将.NET代码转换为Java,遇到了精度不匹配的问题。.NET代码:privatedecimalroundToPrecision(decimalnumber,decimalroundPrecision){if(roundPrecision==0)returnnumber;decimalnumberDecimalMultiplier=Math.Round(number/roundPrecision,MidpointRounding.AwayFromZero);returnnumberDecimalMultiplier*roundPrecision;}在上面的代码中调用roundTo

java - 在 Java 中使用 DecimalFormat 进行舍入

让我们看一下Java中的以下语句。System.out.println(newDecimalFormat("0").format(2.4));//returns2System.out.println(newDecimalFormat("0").format(2.5));//returns2在上述陈述中,除以下情况外,所有其他情况都是显而易见的。System.out.println(newDecimalFormat("0").format(2.5));它应该返回3但它返回2。怎么办? 最佳答案 DecimalFormat的默认舍入方式

Java:如何执行向-Infinity而不是0舍入的整数除法?

(注意:与thisotherquestion不同,因为OP从未明确指定向0或-Infinity舍入)JLS15.17.2表示整数除法向零舍入。如果我想要正除数的类似floor()的行为(我不关心负除数的行为),实现这一点的最简单方法是什么,它对所有输入都是数字正确的?intifloor(intn,intd){/*returnsqsuchthatn=d*q+rwhere00**d=0shouldhavethesamebehavioras`n/d`**nice-to-havebehaviorsford(更新:我想为int和long算法找到一个解决方案。) 最佳答

java - 将 Java BigDecimal 舍入到最近的间隔

我有一个BigDecimal计算结果,我需要将其四舍五入到最接近的指定区间(在本例中为金融市场报价单位大小)。例如价格[TickSize]->四舍五入的价格100.1[0.25]->100100.2[0.25]->100.25100.1[0.125]->100.125100.2[0.125]->100.25谢谢。更新:schnaader的解决方案,翻译成Java/BigDecimal术语:price=price.divide(tick).setScale(0,RoundingMode.HALF_UP).multiply(tick) 最佳答案

java - 在 Java 中向零舍入

如何在Java中向零舍入?所以-1.9变成-1.0,-0.2变成0.0,3.4变成3.0,依此类推。Math.round()是否能够更改某些参数? 最佳答案 我不相信标准库有这样的功能。问题是你要求非常不同的行为(从数学上讲)取决于数字是大于还是小于0(即负值四舍五入,正值四舍五入)可以使用以下方法:publicdoublemyRound(doubleval){if(val 关于java-在Java中向零舍入,我们在StackOverflow上找到一个类似的问题:

python - 如何舍入 Pandas 数据框中的日期时间索引?

有一个像这样的pandas数据框:index2018-06-0102:50:00R45.48-2.82018-06-0107:13:00R45.85-2.0...2018-06-0108:37:00R45.87-2.7我想像这样将索引四舍五入到小时:index2018-06-0102:00:00R45.48-2.82018-06-0107:00:00R45.85-2.0...2018-06-0108:00:00R45.87-2.7我正在尝试以下代码:df=df.date_time.apply(lambdax:x.round('H'))但返回一个系列而不是具有修改索引列的数据框

python - python中的默认舍入模式,以及如何将其指定为另一个舍入模式?

Python中的默认舍入模式(舍入到最接近的值等)是什么?我们如何指定它? 最佳答案 对于基于IEEE754的平台(就像大多数现代平台一样,包括x86、ARM、MIPS...),它的默认模式“舍入到最近,结到偶数”是Python标准库中唯一可用的模式。这是由标准化默认值和缺少库方法来更改它的“提供”。还有更多不允许更改舍入模式的语言-例如Java-所以这不是一个孤立的Python突发奇想。实际上,改变这一点的理由太少了。IEEE754的直接舍入模式在使用上非常特殊。(我不会为坚持默认舍入的方法道歉,只是简单地评论一下。)例如,将1e

Python小数舍入

意见#18,在20controversialprogrammingopinions让我思考。所以我尝试将pi的值打印到小数点后5位。没关系,因为我认为我绝对可以用Python快速完成。在谷歌上几秒钟我就知道了DecimalmoduleofPython.我完成了。Rest是任何人都可以想出的基本逻辑来总结这个系列以获得Pi的值。>>>fromdecimalimport*>>>getcontext().prec=6>>>Decimal(22)/Decimal(7)我写了上面的快速脚本只是为了检查我会得到什么。但事情是这样的,getcontext().prec=6给了我一个四舍五入的值!>>